package com.zyl.function;

import java.util.function.Predicate;

/**
 * @author zhaoyl
 * @date 2024/5/17 10:54
 * @description 说明
 * Predicate是Java中的一个函数式接口,它代表一个判断逻辑,接收一个输入参数,返回一个布尔值。
 *
 * Predicate接口通常用来:
 * 1. 过滤集合中的元素。像List#removeIf()、Stream#filter()等方法接收Predicate来过滤元素。
 * 2. 判断对象是否满足某条件,作为if语句的判断条件。
 * 3. 验证对象的一些属性或状态是否正确。
 * 4. 自定义复杂的判断逻辑作为方法的参数。Predicate的使用者无需了解判断逻辑的具体实现细节。
 */
public class PredicateDemo {
    public static void main(String[] args) {

        //判断字符串是否为空
 /*       Predicate<String> predicate = new Predicate<String>() {
            @Override
            public boolean test(String s) {
                 return s.isEmpty();
            }
        } ;*/

        //lambda表达式
        Predicate<String> predicate =(str)->{
            return str.isEmpty();
        };
        System.out.println(predicate.test(" "));//false
        System.out.println(predicate.test(""));//true


        //案例：检查一个数字是否为偶数。
        Predicate<Integer> isEven = num -> num % 2 == 0;
        System.out.println(isEven.test(5));
    }
}
